AngouriMath

Navigation

IBasisOps`1


← Back to list of classes

Description

Summary

What a basis has to be able to do for its terms to be factorable: it is a monoid, and
its elements have a greatest common part that can be divided out.

Type parameter "TBasis"

An exponent vector for a polynomial, a rational exponent for a series, a basis ket for a
quantum state.

Remarks

Passed as an instance rather than fixed by a type parameter with new(). The
codebase does it the other way in
PolynomialSolver.GatherMonomialInformation<T, TPrimitive>, and that shape
is harder to test in isolation for no gain here, since these operations are stateless
and one instance serves every call.
**Meet(`0,`0) is what makes factoring one operation across features.** Dividing
out the meet of the support is simultaneously "take the common monomial out of a
polynomial" and "detect that a quantum state is separable":
x^2*y + x^2      meet of (2,1) and (2,0) is (2,0), leaving y + 1
|001> + |011>    meet of 001 and 011 is 0-1,   leaving |0> + |1>

The two look different only because a polynomial's basis is ordered -- so the meet is a
componentwise minimum -- while a ket's is flat, and the meet keeps a position only where
every element agrees. Both are the meet in a product of semilattices.

Members

























Angouri © 2019-2023 · Project's repo · Site's repo · Octicons · Transparency · 1953 pages online